package String_demo;
/**
 * StringBuilder : 专门用于修改字符串的API. (不是并发安全的)
 * 其内部维护一个可变的char驻足，并且提供了用于修改字符串的
 * 相关操作，常见的有:增、删、改、插.
 *  "含头不含尾"
 */
public class StringBuilderDemo {
    public static void main(String[] args) {
        String str = "好好学习JAVA";
        //内部默认表示一个空字符串
        //StringBuilder builder = new StringBuilder();
        /* 基于给定的字符串创建
           实际上是给定的字符串内容复制了一份StringBuilder内容,
           并非直接对str进行修改.
         */
        StringBuilder builder = new StringBuilder(str);
        /** append() 追加内容 */
        builder.append(",为了找个好工作!!!");
        System.out.println("str:"+str);
        System.out.println("builder1:"+builder);
        /** replace() 修改字符串内容 */
        builder.replace(9,16,"就是为了毁灭世界");
        System.out.println("builder2:"+builder);
        /** delete() 删除字符串内部内容 */
        builder.delete(0,8);
        System.out.println("builder3:"+builder);
        /** insert() 将给定的内容插入指定位置 */
        builder.insert(0,"变身亚极陀");
        System.out.println("builder4:"+builder);
        /** toString() 得到修改后的字符串 */
        /*
        StringBuilder不是String类型，只是修改字符串的一个工具类。，
        当我门使用StringBuilder修改字符串内容后可以通过它的toString方法将修改后的字符串得到.
         */
        String name = builder.toString();
        System.out.println(name);
        /* 案例 */
        String Ai = "我是格鲁斯!!!";
        StringBuilder builder1 = new StringBuilder(Ai);
        for(int i=0;i<1000000;i++){
            builder1.append("格鲁斯");
        }
        System.out.println("over!!!");


    }
}
